package Modele;

import java.io.File;
import java.util.ArrayList;

//import com.sun.tools.javac.util.Pair;

public interface IModel {
	
	
	public ArrayList<ArrayList<ArrayList<double[]>>> getAllActiv(String expName);
	
	/**
	 * Retourne la classification des exemples
	 * @return
	 */
        public double getTaux(String nomExp);
	public void executerExp(File fichierExp) ;

	public ArrayList<Pair<Integer,Integer>> getResultat(String name);

	public ArrayList<Double> getErreur(String name);

        public ArrayList<double[]> pourcentageNeuKmeans(ArrayList<ArrayList<Integer>> arraykmeans,int[] sizeCouches,int kdekmeans);


        public ArrayList<Pair<Integer,Double>> getCurric(String name);


	public boolean genereDataSet(String name,int level, int size, int nb);
	
		
	public boolean genererExperienceTrain(String NomFic, int nbIn, int nbOut,
			ArrayList<Integer> listeCouche, ArrayList<String> fichiersData,
			boolean sparse, double epsilon, boolean autoEncode, boolean save);
	


	public boolean genererPMC(String NomFic, int nbIn, int nbOut, String pmc, boolean sparse,ArrayList<String> fichiersData, double epsilon);
	


	public boolean genererExperienceFor(String NomFic, int nbIn,
			int nbOut, ArrayList<Integer> listeCouche,
			ArrayList<String> fichiersData, boolean sparse, double epsilon,
			boolean autoEncode, boolean save);

	
	public ArrayList<ArrayList<double[]>> getKmeans(int nbCouches);


        public ArrayList<ArrayList<Integer>> readAllCluster(int nbcouches);




        public boolean genererExperienceCurric(String nomFic, boolean save, int nbApprentissage, int nbTest, int nbInputsInit, int nbInputsMax, int pasInput, int nbIterations, double learningRate);


}
